package nodes;

import compiler.Compiler;
import compiler.SymbolTable;

import descriptors.AbstractDescr;

public class ProcedureBodyNode extends AbstractNode {

	private DeclarationsNode declarations;
	private ListNode<StatementNode> statementSeq;
	
	public ProcedureBodyNode(DeclarationsNode declarations,ListNode<StatementNode> statementSeq,int line,int column){
		super(line,column);
		this.declarations=declarations;
		this.statementSeq=statementSeq;
	}
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public DeclarationsNode declarations(){
		return declarations;
	}
	
	public ListNode<StatementNode> statementSeq(){
		return statementSeq;
	}
	
	@Override
	public AbstractDescr compile(
			SymbolTable symbolTable, Compiler compiler) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void print() {
		trace("ProcedureBodyNode");
		declarations.print();
		statementSeq.print();
		unindent();
	}

}
